<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=yes">
  
  
  <title>  Mac OS上搭建网络连通的虚拟机集群😊 |   XHX 博客 </title>

 
  
    <link rel="icon" href="/images/favicon.ico">
  


  <link rel="stylesheet" href="/nayo.min.css"> 
</head>  
  <body>   
    
      <header class="header">
	
  <nav class="header-nav">        

    <span class="iconfont icon-menu mobile-toggle"></span>   	

    <div class="header-logo">
      <a href="/">
        <img class="header-logo-img" src="/images/head.JPG">
      </a>
    </div>

    <div class="header-menu">          
              
          
            <a class="header-menu-link" id="header-menu-home" href="/">
              <i class="iconfont icon-home">  
            </i></a>     
          
              
          
            <a class="header-menu-link" id="header-menu-archives" href="/archives">
              <i class="iconfont icon-archives">  
            </i></a>     
          
              
          
            <a class="header-menu-link" id="header-menu-tags" href="/tags">
              <i class="iconfont icon-tags">  
            </i></a>     
          
              
          
            <a class="header-menu-link" id="header-menu-about" href="/about">
              <i class="iconfont icon-about">  
            </i></a>     
          
              
          
              <a class="header-menu-link" id="header-menu-search">
                <i class="iconfont icon-search">  
              </i></a>
          
                  
    </div>  
    
  </nav>
</header>

   

      <div class="container">       
          
          
            <section class="main">  
          

          <article class="post">
  
	<div class="post-header">

	<p class="post-title">	
		Mac OS上搭建网络连通的虚拟机集群😊
	</p>
			

	<div class="meta-info">	
	<span>
		Jul 02, 2018
	</span>

	
	
		<i class="iconfont icon-words"></i>
		<span>
			1817
		</span>
	
</div>

</div> 
	 

	  <div class="typo post-content slideDownMin">

		

			
					<h1 id="零、背景"><a href="#零、背景" class="headerlink" title="零、背景"></a>零、背景</h1><p>​    最近看了一些 Hadoop 相关的书籍和文章，想实现 zookeeper 的一个 demo，因此就需要在本地搭建一个 Linux 的虚拟服务器集群，这篇文章就是针对本地虚拟机的配置。<br><a id="more"></a></p>
<h1 id="一、安装虚拟机软件"><a href="#一、安装虚拟机软件" class="headerlink" title="一、安装虚拟机软件"></a>一、安装虚拟机软件</h1><p>​    VMware 的虚拟机软件是付费的，本着开源精神和<strong>一贫如洗的现状</strong>，于是选择了免费且开源的虚拟机软件：<a href="https://www.virtualbox.org" target="_blank" rel="noopener">VirtualBox</a>。软件的安装就不再赘述了，下载 dmg 文件双击就行了。</p>
<h1 id="二、安装-Linux-系统"><a href="#二、安装-Linux-系统" class="headerlink" title="二、安装 Linux 系统"></a>二、安装 Linux 系统</h1><p>​    针对 Linux 系统，我选择了<a href="http://releases.ubuntu.com/16.04/ubuntu-16.04.4-server-amd64.iso.torrent?_ga=2.224076818.808344608.1530474534-2083396476.1530192546" target="_blank" rel="noopener">16.04版本的 Ubuntu Server</a>，顺便多讲一下，Ubuntu 的Server 版本就是只有命令行的OS，而 Desktop 是安装就有（可用鼠标操作的）桌面。因为终端的操作在 MacOS 上已经熟悉过了，而且为了降低对内存的占用（桌面程序实在是太吃内存了），所以选择了 Server 版本。Ubuntu 的版本号选用了一种特别的命名方式：[年份].[月份]。主版本号是年后2位，次版本号是2位月份，最新的版本是18.04，就是2018年4月才发布的。强烈不推荐你试用最新的版本，因为最新的可能更新了很多新特性，而社区和网络上对应的教程、问答都还很少，出了问题不好检索原因。使用16.04就够了。</p>
<p>​    至于在 VirtualBox 上安装 Ubuntu 的过程，全程按照他提示做就行了，设置好用户名和密码。需要注意的地方是：</p>
<h4 id="第一步的选择语言，请不要选择中文！"><a href="#第一步的选择语言，请不要选择中文！" class="headerlink" title="第一步的选择语言，请不要选择中文！"></a><strong>第一步的选择语言，请不要选择中文！</strong></h4><p>​    后续的步骤还有选择语言界面，到时再选择中文就行了。血的教训：第一步就选择了中文会导致安装过程被中断，无法安装。当然，一个仅有命令行的 OS，选择英语也不构成上手难度，推荐全英文，避免潜在的任何语言问题！</p>
<h1 id="三、配置虚拟机网络设置"><a href="#三、配置虚拟机网络设置" class="headerlink" title="三、配置虚拟机网络设置"></a>三、配置虚拟机网络设置</h1><p>​    这一步是重点。</p>
<h5 id="先在-VirtualBox-中设置项中添加一个主机网络配置："><a href="#先在-VirtualBox-中设置项中添加一个主机网络配置：" class="headerlink" title="先在 VirtualBox 中设置项中添加一个主机网络配置："></a>先在 VirtualBox 中设置项中添加一个主机网络配置：</h5><p><img src="https://xiaohaoxing-1257815318.cos.ap-chengdu.myqcloud.com/blog/vm-add-host-only-config.png" alt="添加主机网络"></p>
<p><img src="https://xiaohaoxing-1257815318.cos.ap-chengdu.myqcloud.com/blog/vm-host-only-config.png" alt="仅主机模式网络"></p>
<p>​    记住这里的 IPv4 的 IP 哦，后面设置各个虚拟机的网络的时候还会用到！</p>
<h5 id="再将虚拟机的网络设置修改为如下2个网卡的配置："><a href="#再将虚拟机的网络设置修改为如下2个网卡的配置：" class="headerlink" title="再将虚拟机的网络设置修改为如下2个网卡的配置："></a>再将虚拟机的网络设置修改为如下2个网卡的配置：</h5><p><img src="https://xiaohaoxing-1257815318.cos.ap-chengdu.myqcloud.com/blog/vm-eth1-config.png" alt="网卡1配置"></p>
<p><img src="https://xiaohaoxing-1257815318.cos.ap-chengdu.myqcloud.com/blog/vm-eth2-config.png" alt="网卡2配置"></p>
<p>​    然后就可以进入系统继续操作了。</p>
<h5 id="在虚拟机内输入"><a href="#在虚拟机内输入" class="headerlink" title="在虚拟机内输入"></a>在虚拟机内输入</h5><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ifconfig -a</span><br></pre></td></tr></table></figure>
<p>​    查看所有网卡的状态，这个时候应该有2个虚拟网卡分别是<code>enp0s3</code>和<code>enp0s8</code>，他们对应网卡1和网卡2，分别用于和主机通信与和外网通信。</p>
<h5 id="接下来在虚拟机中继续输入sudo-vi-etc-network-interfaces编辑网卡设置。"><a href="#接下来在虚拟机中继续输入sudo-vi-etc-network-interfaces编辑网卡设置。" class="headerlink" title="接下来在虚拟机中继续输入sudo vi /etc/network/interfaces编辑网卡设置。"></a>接下来在虚拟机中继续输入<code>sudo vi /etc/network/interfaces</code>编辑网卡设置。</h5><p>   当前内容应该是：</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#</span>The loopback network interface</span><br><span class="line">auto lo</span><br><span class="line">iface lo inet loopback</span><br><span class="line"></span><br><span class="line"><span class="meta">#</span>Host-only interface</span><br><span class="line">auto eth1 </span><br><span class="line">iface eth1 inet dhcp</span><br></pre></td></tr></table></figure>
<p>​    第一部分是127.0.0.1的那个网卡的配置，本地连接，不用管它。后面 eth1是网卡1的配置信息，但是名称不对，网卡2的配置信息也是缺失的。所以修改该文件为如下：</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#</span>The loopback network interface</span><br><span class="line">auto lo</span><br><span class="line">iface lo inet loopback</span><br><span class="line"></span><br><span class="line"><span class="meta">#</span>Host-only interface</span><br><span class="line">auto enp0s3 </span><br><span class="line">iface enp0s3 inet static</span><br><span class="line">	address		192.168.56.101</span><br><span class="line">	netmask		255.255.255.0</span><br><span class="line">	network		192.168.56.0</span><br><span class="line">	boardcast	192.168.56.255</span><br><span class="line"></span><br><span class="line"><span class="meta">#</span>NAT interface</span><br><span class="line">auto enp0s8</span><br><span class="line">iface enp0s8 inet dhcp</span><br></pre></td></tr></table></figure>
<p>​    用人话说就是：把 host only 网卡修改为固定 IP，把 NAT 网卡修改为 自动分配 IP。注意这里设定的 IP 的特点：跟上面 VirtualBox 添加的 Host-only 配置要保证在同一个网段！这样才能组成一个子网络。</p>
<p>​        重新启动虚拟机，再次输入 <code>ifconfig</code>查看网卡状态，是否有一个 IP 为<code>192.168.56.101</code>的名为<code>enp0s3</code>的网卡？和一个分配了 IPv4 地址的名为<code>enp0s8</code>的网卡？</p>
<p><img src="/images/placeholder.png" alt="ifconfig 结果" data-src="https://xiaohaoxing-1257815318.cos.ap-chengdu.myqcloud.com/blog/ifconfig-result.png" class="lazyload"></p>
<p>​    紧接着在虚拟机内分别 <code>ping</code>主机（192.168.56.1）和 baidu.com测试，最后都到了返回。</p>
<p><img src="/images/placeholder.png" alt="ping 结果" data-src="https://xiaohaoxing-1257815318.cos.ap-chengdu.myqcloud.com/blog/ping-result.png" class="lazyload"></p>
<h1 id="四、总结"><a href="#四、总结" class="headerlink" title="四、总结"></a>四、总结</h1><p>​    总体上说这一篇的内容不多也不复杂，但是中间走了很多弯路，踩了很多坑。其实做很多东西都是一样，坑踩过了才会不再掉进去，所以不管做了什么，留下一份记录既是对别人的帮助也是对自己的激励！😆</p>
<p>​    最近还在做 redux 的TodoList 尝试，机器学习算法的学习以及众包论文的阅读和思考。后续可能更偏向于理论知识的学习了。</p>
  	
					
	  </div>     
	  

	<div class="post-footer">

  <div class="post-footer-other">
      <span class="post-footer-item">
        




<span class="donate-btn">
	<span class="iconfont icon-donate"></span>
</span>


<div id="donate-box" class="sildeUpMin">

	<span class="donate-cancel iconfont icon-cancel"></span>

	<div class="donate-img-box">
		<img id="donate-qr-wechat" class="noLazyLoad donate-img lazyload" src="/images/placeholder.png" alt="No Donate Image!" data-src="/images/donate1.png">	
		<img id="donate-qr-alipay" class="noLazyLoad donate-img lazyload" src="/images/placeholder.png" alt="No Donate Image!" data-src="/images/donate2.png">	
	</div>

	<span class="donate-word">希望本文对你有帮助~</span>

	<div class="donate-list">
		<span class="iconfont icon-donate-wechat"></span>
		<span class="iconfont icon-donate-alipay"></span>
	</div>

</div>

 
      </span>           
      <span class="post-footer-item">
        
	
<script id="-mob-share" src="http://f1.webshare.mob.com/code/mob-share.js?appkey=29a4323345125"></script>
	
	<span class="share-btn">
	<span class="iconfont icon-share"></span>
	</span>


	<div class="-mob-share sildeUpMin">
		<div class="-mob-inner">
		   			             
            <a class="iconfont icon-share-qq -mob-share-link"></a>		
     	   			             
            <a class="iconfont icon-share-weixin -mob-share-link"></a>		
     	   			             
            <a class="iconfont icon-share-weibo -mob-share-link"></a>		
     	   
		</div>
	</div>	

      </span>           
  </div>  

  <div class="post-footer-meta">
        	

        
          <i class="iconfont icon-tag"></i>     
            <a class="tag-link" href="/tags/虚拟机/">虚拟机</a> <a class="tag-link" href="/tags/计算机网络/">计算机网络</a>    
        	
  </div>

</div>


<nav class="post-footer-nav">
  
    <div class="post-footer-link">
      <a href="/2018/09/26/Java-Interface一个知识点/" id="post-nav-newer" class="post-nav-link-wrap">
        <strong class="post-nav-caption">newer</strong>
           
          <a class="post-nav-title" href="/2018/09/26/Java-Interface一个知识点/">
          Java Interface一个知识点</a>
      </a>
    </div>
  
  
    <div class="post-footer-link">
      <a href="/2018/06/13/React实现异步加载数据/" id="post-nav-older" class="post-nav-link-wrap">
        <strong class="post-nav-caption">older</strong>
        
          <a class="post-nav-title" href="/2018/06/13/React实现异步加载数据/">
          React实现异步加载数据</a>
      </a>
    </div>
  
</nav>
 
	


    
    <div id="disqus_thread"></div>

    <script>
    (function() { 
    var d = document, s = d.createElement('script');
    s.src = 'https://'+'xiaohaoxing-github-io'+'.disqus.com/embed.js';
    s.setAttribute('data-timestamp', +new Date());    
    (d.head || d.body).appendChild(s);
    })();
    </script>

    <noscript>Please enable JavaScript to view the  <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a>
    </noscript>


	
</article>

          </section> 
      </div>            
    
    <a id="backTop">
      <span>
        <i class="iconfont icon-backtotop"></i>
      </span>
    </a> 

  
    
    <div class="search-container sildeUpMin">
        <div class="search-header">
            <input type="text" placeholder="输入你想搜索的" id="search-input" class="search-input">
            <span class="search-cancel">
                <i class="iconfont icon-cancel">
            </i></span>
        </div>
        <div id="search-result" class="search-result"></div>
    </div>
 
     <div class="mobile-menu">      

      
      <img class="mobile-menu-icon lazyload" src="/images/placeholder.png" data-src="/images/favicon.ico">   
      

         
            

            <a class="mobile-menu-link" href="/">首頁
            </a>
            
         
            

            <a class="mobile-menu-link" href="/archives">歸檔
            </a>
            
         
            

            <a class="mobile-menu-link" href="/tags">標籤
            </a>
            
         
            

            <a class="mobile-menu-link" href="/about">關於
            </a>
            
         
                          

            <a class="mobile-menu-link mobile-menu-search" href="#">搜索 </a>                 
            
         
      
</div>        
    



     
    




<footer id="footer">	    

		
		<div class="footer-copyright">
		&copy;
				
		2018-
		
		2019		
	
		XiaoHaoxing
		<br>

		Theme By
		<a href="https://github.com/Lemonreds/hexo-theme-Nayo" target="_blank">Nayo</a>	
		</div>			
		<script src="https://s19.cnzz.com/z_stat.php?id=1274862886&web_id=1274862886" language="JavaScript"></script>
</footer>   

  

    <script src="/nayo.bundle.js"></script>           
  </body>        
</html>